#ifndef SQUARE_H_
#define SQUARE_H_
#include <vector>

/*
    struct for representing a square in the grid.
*/
struct Square
{
    bool isVisible, isWater, isHill, isFood;
    int ant, hillPlayer;
    double value;
    unsigned visits;
    unsigned enemys;
    bool isDead;
    bool isSafe;

    std::vector<int> deadAnts;
  

    Square()
    {
        isVisible = isWater = isHill = isFood = 0;
        ant = hillPlayer = -1;
        value = .0;
	visits = 0;
	enemys = 0;
	isDead = false;
	isSafe = true;
    };

    //resets the information for the square except water information
    void reset(void)
    {
        isVisible = 0;
        // keep isWater
        isHill = 0;
        isFood = 0;
        ant = hillPlayer = -1;
        // -- keep value across turns
        // -- keep visits
        enemys = 0;
        isDead = false;
        isSafe = true;
        deadAnts.clear();
    };
};

#endif //SQUARE_H_
